<?php

namespace app\common\controller;

use think\Controller;
use app\common\model\Upload as UploadModel;

class Upload extends Controller
{
    public function uploadPic()
    {
        $file = request()->file('file');
        if (empty($file)) {
            datamsg(400, '请上传图片');
        }

        $uploadModel = new UploadModel();
        $result      = $uploadModel->uploadPic($file);
        datamsg($result['status'], $result['mess'], $result['data']);
    }

    public function uploadVideo()
    {
        $file = request()->file('file');
        if (empty($file)) {
            datamsg(400, '请上传视频');
        }

        $uploadModel = new UploadModel();
        $result      = $uploadModel->uploadVideo($file);
        datamsg($result['status'], $result['mess'], $result['data']);
    }

    public function uEditorUpload()
    {
        $action = input('get.action');
        if ($action == 'config') {
            $config = [
                /* 上传图片配置项 */
                "imageActionName"=> "uploadimage", /* 执行上传图片的action名称 */
                "imageFieldName"=> "file", /* 提交的图片表单名称 */
                "imageMaxSize"=> 20480000, /* 上传大小限制，单位B */
                "imageAllowFiles"=> [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
                "imageCompressEnable"=> true, /* 是否压缩图片,默认是true */
                "imageCompressBorder"=> 1600, /* 图片压缩最长边限制 */
                "imageInsertAlign"=> "none", /* 插入的图片浮动方式 */
                "imageUrlPrefix"=> "", /* 图片访问路径前缀 */
                "imagePathFormat"=> "/uploads/ueditor/images/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                            /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                            /* {rand=>6} 会替换成随机数,后面的数字是随机数的位数 */
                                            /* {time} 会替换成时间戳 */
                                            /* {yyyy} 会替换成四位年份 */
                                            /* {yy} 会替换成两位年份 */
                                            /* {mm} 会替换成两位月份 */
                                            /* {dd} 会替换成两位日期 */
                                            /* {hh} 会替换成两位小时 */
                                            /* {ii} 会替换成两位分钟 */
                                            /* {ss} 会替换成两位秒 */
                                            /* 非法字符 \ => * ? " < > | */
                                            /* 具请体看线上文档=> fex.baidu.com/ueditor/#use-format_upload_filename */
            
                /* 涂鸦图片上传配置项 */
                "scrawlActionName"=> "uploadscrawl", /* 执行上传涂鸦的action名称 */
                "scrawlFieldName"=> "file", /* 提交的图片表单名称 */
                "scrawlPathFormat"=> "/uploads/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                "scrawlMaxSize"=> 2048000, /* 上传大小限制，单位B */
                "scrawlUrlPrefix"=> "", /* 图片访问路径前缀 */
                "scrawlInsertAlign"=> "none",
            
                /* 截图工具上传 */
                "snapscreenActionName"=> "uploadimage", /* 执行上传截图的action名称 */
                "snapscreenPathFormat"=> "/uploads/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                "snapscreenUrlPrefix"=> "", /* 图片访问路径前缀 */
                "snapscreenInsertAlign"=> "none", /* 插入的图片浮动方式 */
            
                /* 抓取远程图片配置 */
                "catcherLocalDomain"=> ["127.0.0.1", "localhost", "img.baidu.com"],
                "catcherActionName"=> "catchimage", /* 执行抓取远程图片的action名称 */
                "catcherFieldName"=> "source", /* 提交的图片列表表单名称 */
                "catcherPathFormat"=> "/uploads/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                "catcherUrlPrefix"=> "", /* 图片访问路径前缀 */
                "catcherMaxSize"=> 2048000, /* 上传大小限制，单位B */
                "catcherAllowFiles"=> [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
            
                /* 上传视频配置 */
                "videoActionName"=> "uploadvideo", /* 执行上传视频的action名称 */
                "videoFieldName"=> "file", /* 提交的视频表单名称 */
                "videoPathFormat"=> "/uploads/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                "videoUrlPrefix"=> "", /* 视频访问路径前缀 */
                "videoMaxSize"=> 102400000, /* 上传大小限制，单位B，默认100MB */
                "videoAllowFiles"=> [
                                ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
                                ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
            
                /* 上传文件配置 */
                "fileActionName"=> "uploadfile", /* controller里,执行上传视频的action名称 */
                "fileFieldName"=> "file", /* 提交的文件表单名称 */
                "filePathFormat"=> "/uploads/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand=>6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                "fileUrlPrefix"=> "", /* 文件访问路径前缀 */
                "fileMaxSize"=> 51200000, /* 上传大小限制，单位B，默认50MB */
                "fileAllowFiles"=> [
                                ".png", ".jpg", ".jpeg", ".gif", ".bmp",
                                ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
                                ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
                                ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
                                ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
                            ], /* 上传文件格式显示 */
            
                /* 列出指定目录下的图片 */
                "imageManagerActionName"=> "listimage", /* 执行图片管理的action名称 */
                "imageManagerListPath"=> "/uploads/ueditor/php/upload/image/", /* 指定要列出图片的目录 */
                "imageManagerListSize"=> 20, /* 每次列出文件数量 */
                "imageManagerUrlPrefix"=> "", /* 图片访问路径前缀 */
                "imageManagerInsertAlign"=> "none", /* 插入的图片浮动方式 */
                "imageManagerAllowFiles"=> [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
            
                /* 列出指定目录下的文件 */
                "fileManagerActionName"=> "listfile", /* 执行文件管理的action名称 */
                "fileManagerListPath"=> "/uploads/ueditor/php/upload/file/", /* 指定要列出文件的目录 */
                "fileManagerUrlPrefix"=> "", /* 文件访问路径前缀 */
                "fileManagerListSize"=> 20, /* 每次列出文件数量 */
                "fileManagerAllowFiles"=> [
                                ".png", ".jpg", ".jpeg", ".gif", ".bmp",
                                ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
                                ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
                                ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
                                ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
                            ] /* 列出的文件类型 */
            
            ];
            return json($config);
        }
        if ($action == 'uploadimage'){
            $file = request()->file('file');
            $uploadModel = new UploadModel();
            $result      = $uploadModel->uploadPic($file,'pic');
            if($result['status'] == 200){
                return json(['state'=>'SUCCESS','title'=>$result['data']['path'],'url'=>$result['data']['path']]);
            }else{
                return json(['state'=>'上传失败','title'=>'上传失败']);
            }
        }
    }
}